//
//  AppDelegate.swift
//  weibo123456
//
//  Created by 露露 on 16/6/3.
//  Copyright © 2016年 lulu. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        
        
        // TODO: 加载账号,能加载到账号表示用户登录了,加载不到账号表示用户没有登录
        let userAccount = CZUserAccount.loadUserAccount()
        print("加载账号: userAccount: \(userAccount)")
        

        
        
        
        /// 设置导航栏按钮的外观
        setupAppearance()
        
               
        
//   创建window
         window = UIWindow(frame: UIScreen.mainScreen().bounds)
//  创建tabbar控制器；
        
//        let  tabbbarvc = CZMaiController()
        
        
// 设置跟控制器；
//        window?.rootViewController = tabbbarvc
//        window?.rootViewController = CZWelcomeViewController()
//        window?.rootViewController = CZNewfeatureViewController()
//        
        window?.rootViewController = defaultViewController()        
        
//    显示window
    
     window?.makeKeyAndVisible()
//      window的颜色
    window?.backgroundColor = UIColor.whiteColor()
        return true
    
    }
    /// 设置导航栏按钮的外观
    private func setupAppearance(){
        let bar = UINavigationBar.appearance()
        bar.tintColor = UIColor.orangeColor()
    }
    /// 判断程序启动后显示的默认控制器
    private func defaultViewController() -> UIViewController {
        // 判断用户是否登录
        if !CZUserAccount.userLogin {
            // 用户没有登录, 返回CZMainViewController对象
            return CZMaiController()
        }
        
        // 用户已经登录
        return isNewVersion() ? CZNewfeatureViewController() : CZWelcomeViewController()
    }

    // 目标控制器有2个
    // 谁来赋值切换AppDelegate,切换界面其实就是切换window的跟控制器.window是AppDelegate的一个属性,AppDelegate来负责切换最合适
    /// 切换程序的根控制器, isMain = true 表示切换到MainViewController, isMain = false 表示切换到WelcomeViewController
    func switchRootViewController(isMain: Bool) {
        window?.rootViewController = isMain ? CZMaiController() : CZWelcomeViewController()
    }

    /// MARK: - 判断是否是新版本
    /// 判断是否是新版本
    private func isNewVersion() -> Bool {
        // 1. 获取到当前版本
        let currentVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String
        print("当前版本: \(currentVersion)")
        
        // 2. 获取上一次保存的版本
        let sandboxVersionKey = "sandboxVersionKey" // 保存到沙盒的key
        let sandboxVersion = NSUserDefaults.standardUserDefaults().stringForKey(sandboxVersionKey)
        print("沙盒版本: \(sandboxVersion)")
        
        // 3. 保存当前版本
        NSUserDefaults.standardUserDefaults().setObject(currentVersion, forKey: sandboxVersionKey)
        NSUserDefaults.standardUserDefaults().synchronize()
        
        // 4. 返回,当前版本大于上一次的版本
        return currentVersion != sandboxVersion
    }

}

